The invention relates to ranging receivers, e.g. receivers used for receiving navigation information from the well-known global positioning system, and more particularly to the calculation of pseudoranges by ranging receivers.
In the well known Global Positioning System (GPS), a time-stamped signal is transmitted by a GPS satellite as the basis for a pseudorange calculation by a GPS receiver, as part of the determination by the GPS receiver of the position of the GPS receiver or other navigation information useful to the GPS receiver. The GPS receiver measures (records) the time of arrival (TOA) of a target signal fragment (a particular point on the signal, the point that happens to be received at the instant the receiver schedules for a position measurement) based on the GPS receiver clock. If the GPS receiver clock were synchronized with the GPS satellite clock, since the signal includes a time stamp so that the time of transmission (TOT) of the target signal fragment can be determined, the GPS receiver would know the time it took for the target signal fragment to propagate from the GPS satellite to the GPS receiver, which, when multiplied by the speed of light, would yield the range (actual distance) between the GPS satellite and the GPS receiver. (The receiver would simply note the time it received the target signal fragment received at the moment scheduled for a position determination, and would determine when the target signal fragment was transmitted by finding the last time-stamped signal fragment received before the target signal fragment, and based on a knowledge of the structure of the signal, determining how much later the target signal fragment was transmitted, compared to the time-stamped fragment of the signal.)
Each GPS satellite includes a clock that is approximately synchronized with GPS time, and each GPS satellite broadcasts information needed by a GPS receiver to correct the GPS satellite clock to essentially exact GPS time. Thus, each GPS receiver knows how to correct the time stamp of a signal fragment by a GPS satellite so that the time stamp is translated to precise GPS time. However, GPS receivers usually include relatively inexpensive clocks, which must be synchronized with GPS time each time a receiver is turned on, and periodically thereafter. Therefore, when a GPS receiver determines its range from a GPS satellite based on the time-stamp of a signal fragment and the time (according to the GPS receiver clock) it received a target signal fragment, the result is off from the true range, and is conventionally called the pseudorange to indicate the error. The pseudorange is the true range plus the error due to the GPS receiver clock being offset from GPS time. A GPS receiver typically determines its position by acquiring pseudoranges from usually four satellites, which allows the GPS receiver to simultaneously determine its position as well as the offset of its clock compared to GPS time.
GPS satellites broadcast navigation data (including their ephemerides and health information) using a direct sequence spread spectrum signal. Doing so allows all of the satellites to share the same frequency spectrum. Each satellite modulates the same carrier frequency with a PRN code (via binary phase shift key modulation) as well as with the navigation data for the satellite. A receiver must acquire and track the signal from a GPS satellite in order to read the navigation data from the satellite. The acquisition and tracking of a GPS signal for a particular one of the GPS satellites amounts to synchronizing the received PRN code for the GPS satellite (obtained from the received signal after removing the carrier frequency) with a replica of the PRN code generated by the GPS receiver. A correlator determines at what relative position the replica PRN code is in phase with the received PRN code.
In actual operation of a GPS receiver in good signal conditions (so that the GPS receiver can decode the time-stamp of the signal fragment), the GPS receiver determines precisely when a target signal fragment was transmitted by a satellite using a procedure that depends on aligning a replica of the PN code for the satellite. A GPS signal from a satellite includes a navigation data component at 50 Hz, and one or another pseudorandom number (PRN) sequences. One such PRN sequence, called the C/A (coarse acquisition) sequence, is a 1023 bit-long code broadcast as a 1.023 MHz signal; the 1.023 C/A signal thus has a period (epoch) of 1023 bits (called chips, to distinguish these from the bits of the navigation data message). A bit of the navigation data therefore has a duration of 20 ms, and a chip of the C/A code therefore has a duration of 1 ms. A receiver schedules a position measurement at a certain moment, and at the scheduled moment target signal fragments arrive from the set of satellites for which pseudoranges will be determined. The navigation data for a satellite is provided in five subframes of 300 bits each, making a frame of 1500 bits, broadcast over a period of 6 seconds. Each subframe provides a so-called TOW time stamp, which indicates the GPS time at which a corresponding particular bit of the navigation message was transmitted. (The GPS time so indicated is off from true GPS time, but the navigation data includes corrections to it, so that for all practical purposes, the TOW is according to true GPS time.) For each such satellite, the time of transmission of the target signal fragment is determined using:
TTOTk=TOWk+Nbitk+Nmsk+Nchipk+xcex94chipk,xe2x80x83xe2x80x83(1)
where TOWk is the time of week at which the bit corresponding to the TOW time stamp was transmitted, and the other terms add to that time of week the time increments needed to arrive at the time the target signal fragment was transmitted. Of the other terms, Nbitk is the time duration corresponding to the whole number of (20 ms) data bits transmitted after the TOW time stamp data bit (i.e. the data bit for which the TOW is given) and before the target signal fragment, Nmsk is the time duration corresponding to the whole number of (1 ms) epochs of PRN codes transmitted after the last whole data bit and before the target signal fragment, Nchipk is time duration corresponding to the whole number of (1 microsecond) chips transmitted after the last whole PRN epoch and before the target signal fragment, and xcex94chipk is the time duration corresponding to the fraction of a chip transmitted after the last whole chip and before the target signal fragment. The quantity Nchipk+xcex94chipk is called the sub-millisecond component of the time of transmission.
Once the TOT for a target signal is determined for enough satellites, the receiver (or a computing facility in communication with the receiver) determines the receiver position as well as the difference in the receiver clock and GPS time at the time of arrival of the target signal fragment using for example the method of least squares to solve simultaneously for the receiver position and the offset of the receiver clock from the true GPS time at the TOA of the target signal fragment. In other words, once the TOT for a satellite is determined, say the kth satellite, the pseudorange xcfx81k for that satellite is calculated using simply the TOA for the signal fragment based on the reading of the receiver clock at the moment the target signal arrives. The pseudorange xcfx81k is calculated according to:
xcfx81k=(TGPSxe2x88x92TTOTk)xc2x7c,xe2x80x83xe2x80x83(2)
where TTOTk is the TOT for the kth satellite, TGPS is the TOA (in GPS time) of the target signal fragment (which is the same for all satellites), and c is the speed of light. Pseudoranges from usually at least four satellites are then used to solve a set of equations relating the pseudoranges for the satellites to the geometrical (true) ranges to the satellites and to the offset in the receiver clock; the set of equations are:
xcfx81k=∥{overscore (x)}svk(TTOTk)xe2x88x92{overscore (x)}u(TGPS)∥+ctu, for k=1, . . . Mxe2x80x83xe2x80x83(3)
where {overscore (x)}SVk(TTOTk) is the position of the kth satellite vehicle (SV) at the time of transmission of the target signal fragment, {overscore (x)}u(TGPS) is the position of the GPS receiver at the time of arrival of the target signal fragment, and tu is the offset of the receiver clock from true GPS time at the moment of arrival of the signal fragment. The solution of the set of equations (3) yields both the receiver position and the offset in the receiver clock compared to GPS time at the moment of arrival of the target signal fragment.
Sometimes, in poor signal conditions, the navigation message from a GPS satellite cannot be decoded (accurately) by a GPS receiver, even though the receiver is able to track the GPS satellite and so obtain the millisecond part of the TOT. In such a situation, the time stamp of the satellite signal cannot be discerned, and so although the quantity Nmsk+Nchipk+xcex94chipk of equation (1) could be determined from any point of the received signal, there is no point of the received signal for which the time of transmission is known.
The prior art teaches that if an estimate of the GPS time at which a target signal fragment has arrived from a satellite is known by some means, then the time of transmission by the satellite can be estimated using:
TTOTk=TGPSxe2x88x92Ñmskxe2x88x92Nchipkxe2x88x92xcex94chipk,xe2x80x83xe2x80x83(4 )
where Ñmsk is the time duration corresponding to the whole number of (1 ms) PRN code epochs transmitted during the propagation of the target signal fragment, and the other terms are as in equation (1), and Ñmsk is calculated using the known location of a reference landmark (e.g. a base station of a cellular communication network) within 1 ms range of the GPS receiver. Thus, if {overscore (x)}ref is the known position of the reference landmark, and using the notation └ . . . ┘ to indicate rounding down to the nearest integer, then                                           N            ~                    ms          k                =                              ⌊                                                            "LeftDoubleBracketingBar"                                                                                                              x                          →                                                SV                        k                                            ⁢                                              (                                                  T                          TOT                          k                                                )                                                              -                                                                                            x                          →                                                ref                                            ⁡                                              (                                                                              T                            ^                                                    GPS                                                )                                                                              "RightDoubleBracketingBar"                                c                            ·              1000                        ⌋                    ⁢                      
                    ⁢                      xe2x80x83                    =                      ⌊                                                            "LeftDoubleBracketingBar"                                                                                                              x                          →                                                SV                        k                                            ⁢                                              (                                                  T                          TOT                          k                                                )                                                              -                                                                                            x                          →                                                u                                            ⁡                                              (                                                  T                          GPS                                                )                                                                              "RightDoubleBracketingBar"                                c                            ·              1000                        ⌋                                              (        5        )            
yielding the time of flight in milliseconds, since the time of arrival of the target signal fragment {circumflex over (T)}GPS at the reference landmark is, by assumption, within one millisecond of the time of arrival TGPS at the GPS receiver.
The invention solves the problem of determining the pseudoranges without use of navigation data in two other ways, compared to the prior art. Not having to rely on navigation data, the invention is thus able to provide information (pseudoranges) useful in estimating the position of a GPS receiver when navigation data is unavailable, such as in poor signal conditions, or when a GPS receiver is first turned on, before enough time has elapsed for the GPS receiver to accumulate the bits constituting the navigation data from the required number of satellites, so that the invention also provides a first fast estimate of the position of a GPS receiver.
It should be mentioned that besides the prior art teaching of using a reference landmark, it is also known to provide pseudoranges without the navigation data based on using an estimate of the TOT of target signal fragments from the required number of satellites, all biased to the same extent. (See e.g. Time recovery through fusion of inaccurate network timing assistance with GPS measurement by J. Syrjxc3xa4rinne, Proc. 3rd Int. Conference on Information Fusion, Paris, France, Jul. 10-13, 2000, Vol. II, pp. WeD5-3-WeD5-10; and see also Possibilities for GPS Time recovery with GSM Network Assistance by J. Syrjxc3xa4rinne, in Proc. ION GPS 2000, Salt Lake City, Utah, USA, Sep. 19-22, 2000.) Although such an approach does yield a position and time solution (or more generally a position, velocity and time (PVT) solution), the method of the invention is aimed at providing a more robust solution procedure, one providing reasonable operating in larger uncertainty area of first initial time and position estimates.
Accordingly, the present invention provides an apparatus, system and corresponding method for measuring a pseudorange from a ranging receiver to a beacon, the ranging receiver for receiving a ranging signal transmitted by the beacon, the ranging signal including a target ranging signal fragment that arrives at the ranging receiver at the time the pseudorange measurement is being made, the ranging signal having a code component including a sequence of chips having a predetermined epoch and also having an information component including a sequence of information elements, the method including the steps of: evaluating the quality of the ranging signal; if the quality of the ranging signal allows a determination of the occurrence in the ranging signal of the start of the information element received just prior to the target ranging signal fragment, then determining the time of transmission of the target ranging signal fragment based on an estimate of the start time for the information element beginning just before the target ranging signal fragment, and also based on the epoch count between the last information element and the target ranging signal fragment and the integer and fractional chip count between the end of the last code epoch and the target ranging signal fragment; or (even in some cases where the quality of the ranging signal allows a determination of the occurrence in the ranging signal of the start of the information element received just prior to the target ranging signal fragment, but usually where this is not so) determining the time of transmission of the target ranging signal fragment based on an estimate of the time corresponding to the start of the code epoch that just precedes the target ranging signal fragment, and also based on the integer and fractional chip count between the end of the last code epoch and the target ranging signal fragment.
In a further aspect of the invention, the information component is a navigation data component and the information elements are navigation data bits, and each bit of the navigation data component typically has a duration that encompasses a plurality of epochs of chips of the code component.
In a still further aspect of the invention, in some applications, where the quality of the ranging signal allows a determination of the occurrence in the ranging signal of the start of the information element received just prior to the target ranging signal fragment, the time of transmission TTOT of the target ranging signal fragment is often calculated using the formula:             T      TOT        =                  round        ⁢                  xe2x80x83                ⁢                              (                                          T                                  StartNavBit                  )                                                            τ                nav                                      )                    ·                      τ            nav                              +                        (                                    N              epoch                        -                          N              EpochAtLastBit                                )                ⁢                  τ          code                    +                        M          chip                ⁢                  τ          chip                      ,
in which xcfx84nav is the duration of a single navigation data bit, where TStarNavBit, the bit start time for the bit beginning just before the target ranging signal fragment, is often calculated using the formula:
TStarNavBit={circumflex over (T)}GPSxe2x88x92TTOFxe2x88x92(Nepochxe2x88x92NEpochAtLastBit)xcfx84codexe2x88x92Mchipxcfx84chip+xcex94SatClock{{circumflex over (T)}GPSxe2x88x92TTOFxe2x88x92(Nepochxe2x88x92NEpochAtLastBit)xcfx84codexe2x88x92Mchipxcfx84chip}
in which
{circumflex over (T)}GPS is an estimate of the time at which the position measurement is being made by the ranging receiver;
TTOF is the time of flight, from the beacon to the ranging receiver, of the target ranging signal fragment;
xcex94SatClock(t) is a time-dependent correction of the beacon clock to a standard time;
Nepoch is the code epoch count provided by a module of the ranging receiver responsible for baseband processing;
NEpochAtLastBit is the code epoch count at the last bit edge starting before the target ranging signal fragment and is also provided by the ranging receiver baseband processing module;
Mchip is the integer and fractional chip count between the end of the last code epoch and the target ranging signal fragment, and is also provided by the ranging receiver baseband processing module; and
xcfx84chip is the duration of a chip of the code component.
In another still further aspect of the invention, in some applications, usually where the quality of the ranging signal does not allow a determination of the occurrence in the ranging signal of the start of the information element received just prior to the target ranging signal fragment, the time of transmission TTOT of the target ranging signal fragment is often calculated using the formula:             T      TOT        =                  round        ⁢                  xe2x80x83                ⁢                              (                                          T                StartCode                                            τ                code                                      )                    ·                      τ            code                              +                        M          chip                ·                  τ          chip                      ,
where xcfx84code is the period of the code, and where TStartcode, the estimate of the time corresponding to the start of the code epoch that just precedes the target ranging signal fragment, is often calculated using the formula:
TStartCode={circumflex over (T)}GPSxe2x88x92TTOFxe2x88x92Mchipxc2x7xcfx84chip+xcex94SatClock({circumflex over (T)}GPSxe2x88x92TTOFxe2x88x92Mchipxc2x7xcfx84chip),
where the quantities on the right hand side of the equation are as above.